/**
 * 生成一条带类型标记和时间标记的普通信息
 * @param {String} typeString log 类型 REPORT TACTICS AD DATA API VIEW AD_UTILS CUSTOM
 * @param  {...any} param log数据
 */
function Log (typeString, ...param) {
  if (process.env.NODE_ENV !== 'development') return
  
  switch (typeString) {
    case 'REPORT':
      console.log.call(
        null,
        '%c [REPORT] ',
        'background: #6fa; color: #000',
        ...param
      )
      break
    case 'TACTICS':
      console.log.call(
        null,
        '%c [API] ',
        'background: #ff6eec; color: #fff',
        ...param
      )
      break
    case 'AD':
      console.log.call(
        null,
        '%c [AD] ',
        'background: #ffe270; color: #000',
        ...param
      )
      break
    case 'DATA':
      console.log.call(
        null,
        '%c [DATA] ',
        'background: #f33; color: #fff',
        ...param
      )
      break
    case 'API':
      console.log.call(
        null,
        '%c [AJAX] ',
        'background: #ff983c; color: #fff',
        ...param
      )
      break
    case 'VIEW':
      console.log.call(
        null,
        '%c [VIEW] ',
        'background: #4436ff; color: #fff',
        ...param
      )
      break
    case 'AD_UTILS':
      console.log.call(
        null,
        '%c [AD_UTILS] ',
        'background: #23ac42; color: #fff',
        ...param
      )
      break
    case 'CUSTOM':
      console.log.call(
        null,
        '%c [CUSTOM] ',
        'background: #ff0000; color: #fff',
        ...param
      )
      break
    case 'BQT_AD':
    console.log.call(
      null,
      '%c [BQT_AD] ',
      'background: #ff9900; color: #333',
      ...param
    )
    break
    default:
      console.log.call(
        null,
        '%c [LOG] ',
        'background: #333; color: #fff',
        typeString,
        ...param
      )
      break
  }
}

export default Log
